/**********************************************************************

  Tenacity

  ThemePackage.h

  Avery King

  License: GPL v2 or later

**********************************************************************/

#include "ThemeResourceList.h"

extern const std::list<
    std::tuple<
        std::string, // Image name
        size_t,      // Expected image width
        size_t       // Expected image height
    >
> KnownImageResourceNames
{
    // Bitmaps ////////////////////////////////////////////////////////////////
    // Name                                    W   H
    {"pause",                                  16, 16},
    {"pauseDisabled",                          16, 16},
    {"play",                                   16, 16},
    {"playDisabled",                           16, 16},
    {"loop",                                   16, 16},
    {"loopDisabled",                           16, 16},
    {"cutPreview",                             16, 16},
    {"cutPreviewDisabled",                     16, 16},
    {"stop",                                   16, 16},
    {"stopDisabled",                           16, 16},
    {"rewind",                                 16, 16},
    {"rewindDisabled",                         16, 16},
    {"ffwd",                                   16, 16},
    {"ffwdDisabled",                           16, 16},
    {"record",                                 16, 16},
    {"recordDisabled",                         16, 16},
    {"recordBelow",                            16, 16},
    {"recordBelowDisabled",                    16, 16},
    {"recordBeside",                           16, 16},
    {"recordBesideDisabled",                   16, 16},
    {"scrub",                                  18, 16},
    {"scrubDisabled",                          18, 16},
    {"seek",                                   26, 16},
    {"seekDisabled",                           26, 16},

    // Audio Setup toolbar
    {"audioSetup",                             37, 18},

    // Tool icons
    {"IBeam",                                  27, 27},
    {"zoom",                                   27, 27},
    {"envelope",                               27, 27},
    {"timeShift",                              27, 27},
    {"draw",                                   27, 27},
    {"multi",                                  27, 27},
    {"mic",                                    25, 25},
    {"speaker",                                25, 25},

    // Zoom icons
    {"zoomFit",                                27, 27},
    {"zoomFitDisabled",                        27, 27},
    {"zoomIn",                                 27, 27},
    {"zoomInDisabled",                         27, 27},
    {"zoomOut",                                27, 27},
    {"zoomOutDisabled",                        27, 27},
    {"zoomSel",                                27, 27},
    {"zoomSelDisabled",                        27, 27},
    {"zoomToggle",                             27, 27},
    {"zoomToggleDisabled",                     27, 27},

    // Editing icons
    {"cut",                                    26, 24},
    {"cutDisabled",                            26, 24},
    {"copy",                                   26, 24},
    {"copyDisabled",                           26, 24},
    {"paste",                                  26, 24},
    {"pasteDisabled",                          26, 24},
    {"trim",                                   26, 24},
    {"trimDisabled",                           26, 24},
    {"silence",                                26, 24},
    {"silenceDisabled",                        26, 24},
    {"undo",                                   26, 24},
    {"undoDisabled",                           26, 24},
    {"redo",                                   26, 24},
    {"redoDisabled",                           26, 24},

    // Transcription icons (currently experimental but not enabled by default)
    #ifdef EXPERIMENTAL_VOICE_DETECTION
    {"transcriptionStartOn",                   27, 27},
    {"transcriptionStartOnDisabled",           27, 27},
    {"transcriptionStartOff",                  27, 27},
    {"transcriptionStartOffDisabled",          27, 27},
    {"transcriptionEndOn",                     27, 27},
    {"transcriptionEndOnDisabled",             27, 27},
    {"transcriptionEndOff",                    27, 27},
    {"transcriptionEndOffDisabled",            27, 27},
    {"transcriptionCalibrate",                 27, 27},
    {"transcriptionCalibrateDisabled",         27, 27},
    {"transcriptionAutomateSelection",         27, 27},
    {"transcriptionAutomateSelectionDisabled", 27, 27},
    {"transcriptionMakeTag",                   27, 27},
    {"transcriptionMakeTagDisabled",           27, 27},
    {"transcriptionSelectSound",               24, 24},
    {"transcriptionSelectSoundDisabled",       24, 24},
    {"transcriptionSelectSilence",             24, 24},
    {"transcriptionSelectSilenceDisabled",     24, 24},
    #endif

    // Sync Lock
    {"syncLockSelected",                       20, 22},
    {"syncLockTracksDown",                     20, 20},
    {"syncLockTracksUp",                       20, 20},
    {"syncLockTracksDisabled",                 20, 20},
    {"syncLockIcon",                           12, 12},

    // Label Glyphs
    {"labelGlyphLeft",                         15, 23},
    {"labelGlyphLeftSelected1",                15, 23},
    {"labelGlyphLeftSelected2",                15, 23},
    {"labelGlyphRight",                        15, 23},
    {"labelGlyphRightSelected1",               15, 23},
    {"labelGlyphRightSelected2",               15, 23},
    {"labelGlyphSingle",                       15, 23},
    {"labelGlyphSingleSelected",               15, 23},
    {"labelGlyphSingleLeftSelected",           15, 23},
    {"labelGlyphSingleRightSelected",          15, 23},

    // Play and Thumb Heads
    {"playPointer",                            20, 20},
    {"playPointerPinned",                      20, 20},
    {"recordPointer",                          20, 20},
    {"recordPointerPinned",                    20, 20},
    {"grabberDropLoc",                         20, 20},
    {"sliderThumb",                            20, 20},
    {"sliderThumbHilited",                     20, 20},
    {"sliderThumbRotated",                     20, 20},
    {"sliderThumbRotatedHilited",              20, 20},

    // Track panel buttons
    {"upButtonExpand",                         96, 18},
    {"upButtonExpandSel",                      96, 18},
    {"downButtonExpand",                       96, 18},
    {"downButtonExpandSel",                    96, 18},
    {"hiliteUpButtonExpand",                   96, 18},
    {"hiliteUpButtonExpandSel",                96, 18},
    {"hiliteButtonExpand",                     96, 18},
    {"hiliteButtonExpandSel",                  96, 18},
    {"pitchUpIndicator",                       12, 12},
    {"pitchDownIndicator",                     12, 12},
    {"speedIndicator",                         12, 12},
    {"tcpClose",                               16, 16},
    {"tcpChevron",                             16, 16},
    {"tcpChevronDown",                         16, 16},
    {"tcpEllipses",                            16, 16},

    // Effect icons
    {"effectOn",                               22, 22},
    {"effectOff",                              22, 22},
    {"effectMoreDown",                         22, 22},
    {"effectMoreNormal",                       22, 22},
    {"effectMoreHover",                        22, 22},
    {"effectMoreDisabled",                     22, 22},
    {"effectCloseDown",                        22, 22},
    {"effectCloseNormal",                      22, 22},
    {"effectCloseHover",                       22, 22},
    {"effectCloseDisabled",                    22, 22},
    {"effectHButtonNormal",                    22, 22},
    {"effectHButtonHover",                     22, 22},
    {"effectHButtonDown",                      22, 22},
    {"effectHButtonDisabled",                  22, 22},

    // Toolbar buttons
    {"upButtonLarge",                          48, 48},
    {"upButtonSmall",                          27, 27},
    {"downButtonLarge",                        48, 48},
    {"downButtonSmall",                        27, 27},
    {"hiliteUpButtonLarge",                    48, 48},
    {"hiliteUpButtonSmall",                    27, 27},
    {"hiliteButtonLarge",                      48, 48},
    {"hiliteButtonSmall",                      27, 27},
    {"recoloredUpLarge",                       48, 48},
    {"recoloredDownLarge",                     48, 48},
    {"recoloredUpHiliteLarge",                 48, 48},
    {"recoloredHiliteLarge",                   48, 48},
    {"recoloredUpSmall",                       27, 27},
    {"recoloredDownSmall",                     27, 27},
    {"recoloredUpHiliteSmall",                 27, 27},
    {"recoloredHiliteSmall",                   27, 27},


    // Miscellaneous icons
    {"cogwheel",                               20, 20},
    {"helpIcon",                               21, 21}
};

const std::list<std::string> KnownColorResourceNames {
    "blank",
    "unselected",
    "selected",
    "sample",
    "selSample",
    "dragSample",
    "muteSample",
    "rms",
    "muteRms",
    "shadow",
    "aboutBackground",
    "trackPanelText",
    "labelTrackText",
    "meterPeak",
    "meterDisabledPen",
    "meterDisabledBrush",
    "meterInputPen",
    "meterInputBrush",
    "meterInputRMSBrush",
    "meterInputClipBrush",
    "meterInputLightPen",
    "meterInputDarkPen",
    "meterOutputPen",
    "meterOutputBrush",
    "meterOutputRMSBrush",
    "meterOutputClipBrush",
    "meterOutputLightPenl",
    "meterOutputDarkPen",
    "rulerBackground",
    "axisLines",
    "graphLines",
    "ResponseLines",
    "hzPlot",
    "wavelengthPlot",
    "envelope",
    "muteButtonActive",
    "muteButtonVetoed",
    "cursorPen",
    "recordingPen",
    "playbackPen",
    "recordingBrush",
    "playbackBrush",
    "rulerRecordingBrush",
    "rulerRecordingPen",
    "rulerPlaybackPen",
    "timeFont",
    "timeBack",
    "timeFontFocus",
    "timeBackFocus",
    "labelTextNormalBrush",
    "labelTextEditBrush",
    "labelUnselectedBrush",
    "labelSelectedBrush",
    "labelUnselectedPen",
    "labelSelectedPen",
    "labelSurroundPen",
    "trackFocus0",
    "trackFocus1",
    "trackFocus2",
    "snapGuide",
    "trackInfo",
    "trackInfoSelected",
    "light",
    "medium",
    "dark",
    "lightSelected",
    "mediumSelected",
    "darkSelected",
    "clipped",
    "muteClipped",
    "progressDone",
    "progressNotYet",
    "syncLockSel",
    "selTranslucent",
    "blankSelected",
    "sliderLight",
    "sliderMain",
    "sliderDark",
    "trackBackground",
    "placeHolder1",
    "graphLabels",
    "spectroBackground",
    "scrubRuler",
    "timeHours",
    "focusBox",
    "trackNameText",
    "midiZebra",
    "midiLines",
    "textNegativeNumbers",
    "clipAffordanceOutlinePen",
    "clipAffordanceInactiveBrush",
    "clipAffordanceActiveBrush",
    "clipAffordanceStroke",
    "clipLabelTrackTextSelection",
    "clipNameText",
    "clipNameTextSelection"
};
